<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--
   1. 关键词
     var
     let
     const  常量
   2. 语法糖  class  extends  super  set  get 属性的私有化   构造器
   3. 解构赋值  数组  对象
   4. 对象的简化写法
   5. 模板字符串
   6. 模块化开发
-->

<script>

    /*
    *    1. 定义变量
    *     var  变量名  =  变量值   函数作用域   变量名可重复  可以先使用后定义   变量提升
    *     let  没有变量提升  变量名可重复  先声明后使用   代码块
    * */

    // var num;
    // console.log(num)
    // num = 2
    // console.log(num)
    //
    // for (var i = 0; i < 5 ; i++) {
    //
    // }
    //
    // console.log(i)

    let num = 1
    // let num = 2
    console.log(num)

    for (let i = 0; i < 5; i++) {

    }
    // console.log(i)

    //  代码块
    {
        let str = "代码块"
    }
    // console.log(str)



    // 定义常量   不可变的数据 PI 常量在声明时就要完成初始化
    // const  PI;
    const  PI = 3.14
    // PI = 4
    console.log(PI)


    //  如果常量的值 时数组或者对象 只要指向的地址不发生改变  则不会报错   改变数组中的元素  改变对象中的属性值
    const  ARR = [1,2,3]
    // ARR = [4,5,6]   报错
    ARR.push(4)
    console.log(ARR.toString())

    const  OBJ = {
        name:'lisi'
    }

    // OBJ = {}  报错

    obj.name = '张三'
    console.log(obj)

</script>


</body>
</html>